This invention relates generally to computer software. Aspects of this invention also relate more specifically to network software, data storage and replication.
Data storage systems are responsible for the safety and integrity of the data they host. One common method used to protect data from loss is data replication. Data replication makes additional copies of data, often on different storage nodes. When there are multiple copies of a single data item, the probability of loss of all of the copies is much lower than for data on a single node.
An added benefit of replication, and often a major motivation for it, is improved overall read performance. By having copies of data on multiple nodes, read activity in the network is less likely to concentrate on one or very few nodes, and will likely be more balanced across the nodes. In larger scale networks spanning different regions of geography, connectivity, organization and administration, having one or more copies within a region can improve responsiveness for applications executing in that region.
It would be advantageous to have a method by which data replicas would be placed intelligently amongst the nodes of a network, without excessive management overhead or complexity, and with reasonable efficiency.